package org.platform.mo.db;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;

@Table(name = "tb_fd_work_sch_info")
public class FdWorkSchInfo {
    /**
     * 任务单流水号+计划编号
     */
    @Id
    @Column(name = "ID")
    private String id;

    /**
     * 任务单流水号
     */
    @Column(name = "Task_Serial_Number")
    private String taskSerialNumber;

    /**
     * 计划编号
     */
    @Column(name = "Job_Task_ID")
    private String jobTaskID;

    /**
     * 计划创建者：
     * （Local/RMCS/OMO）
     */
    @Column(name = "Creator")
    private String creator;

    /**
     * 计划提交时间
     * 参见3.2.4。
     */
    @Column(name = "Submit_Time")
    private String submitTime;

    /**
     * 卫星名称
     */
    @Column(name = "Satellite_Name")
    private String satelliteName;

    /**
     * 轨道圈号
     */
    @Column(name = "Orbit_Number")
    private String orbitNumber;

    /**
     * 轨道类型：
     * SunSync：太阳同步
     * EarthSync：地球同步
     * HighlyEllipitical：大椭圆轨道
     */
    @Column(name = "Orbit_Type")
    private String orbitType;

    /**
     * 计划接收模式：
     * Normal：正常接收
     * DualRecord：单天线双记录
     * DualAntDualRecord：双天线双记录
     * 结束时间
     */
    @Column(name = "Task_Rcv_Type")
    private String taskRcvType;

    /**
     * 作业方式
     * 参见《国家民用空间基础设施“十二五”陆地观测卫星地面系统项目数据接收系统接收管理与监控分系统与跟踪接收分系统接口规范》
     * 对于某个任务单的作业任务，其作业方式可采用多个作业方式进行组合。如此任务单存在多个作业方式，中间以“;”隔开。
     * 作业方式有：
     * A02：卫星跟踪与接收；
     * A01，A03…A10：预留；
     * R11：数据记录；
     * R12: 原始数据实时传输；
     * R14：快视数据实时传输；
     * R16: 原始数据记录完成立即传输；
     * R17: 快视数据记录完成立即传输；
     * R18：应急截取数据并实时传输（仅针对高分星）；
     * R19：原始数据抽取数据实时传输（仅针对先导星）；
     * R13，R15用于记录数据传输任务；
     * R20…R30: 预留；
     * H31…H40：预留。
     * P01：任务过程中快速校相
     */
    @Column(name = "Task_Mode")
    private String taskMode;

    /**
     * 计划执行状态：
     * Hold：任务确认之后且尚未进入Ready状态（此状态下可以取消任务）；
     * Ready：准备就绪，等待执行（任务执行前10分钟进入Ready状态，此时起任务不能被取消；对于数据记录分系统，任务执行前5分钟进入Ready状态）；
     * Running：正在进行；
     * Completed：完成；根据计划完全成功。
     * NoRespond：数据记录分系统未响应；
     * Failed：失败。
     */
    @Column(name = "Status")
    private String status;

    /**
     * 跟踪开始时间
     * 参见3.2.4
     */
    @Column(name = "Track_Start_Time")
    private String trackStartTime;

    /**
     * 跟踪结束时间
     * 参见3.2.4
     */
    @Column(name = "Track_Stop_Time")
    private String trackStopTime;

    /**
     * 记录开始时间
     * 参见3.2.4
     */
    @Column(name = "Receiving_Start_Time")
    private String receivingStartTime;

    /**
     * 记录结束时间
     * 参见3.2.4
     */
    @Column(name = "Receiving_End_Time")
    private String receivingEndTime;

    /**
     * 起始方位（单位：0.001度）
     */
    @Column(name = "AzIn")
    private Integer azin;

    /**
     * 起始俯仰（单位：0.001度）
     */
    @Column(name = "ElIn")
    private Integer elin;

    /**
     * 结束方位（单位：0.001度）
     */
    @Column(name = "Az_Out")
    private Integer azOut;

    /**
     * 结束俯仰（单位：0.001度）
     */
    @Column(name = "El_Out")
    private Integer elOut;

    /**
     * 最高仰角（单位：0.001度）
     */
    @Column(name = "El_Top")
    private Integer elTop;

    /**
     * 执行天线标识，参见3.2.5
     */
    @Column(name = "Antenna_ID")
    private String antennaID;

    /**
     * 获取任务单流水号+计划编号
     *
     * @return ID - 任务单流水号+计划编号
     */
    public String getId() {
        return id;
    }

    /**
     * 设置任务单流水号+计划编号
     *
     * @param id 任务单流水号+计划编号
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取任务单流水号
     *
     * @return Task_Serial_Number - 任务单流水号
     */
    public String getTaskSerialNumber() {
        return taskSerialNumber;
    }

    /**
     * 设置任务单流水号
     *
     * @param taskSerialNumber 任务单流水号
     */
    public void setTaskSerialNumber(String taskSerialNumber) {
        this.taskSerialNumber = taskSerialNumber;
    }

    /**
     * 获取计划编号
     *
     * @return Job_Task_ID - 计划编号
     */
    public String getJobTaskID() {
        return jobTaskID;
    }

    /**
     * 设置计划编号
     *
     * @param jobTaskID 计划编号
     */
    public void setJobTaskID(String jobTaskID) {
        this.jobTaskID = jobTaskID;
    }

    /**
     * 获取计划创建者：
     * （Local/RMCS/OMO）
     *
     * @return Creator - 计划创建者：
     * （Local/RMCS/OMO）
     */
    public String getCreator() {
        return creator;
    }

    /**
     * 设置计划创建者：
     * （Local/RMCS/OMO）
     *
     * @param creator 计划创建者：
     *                （Local/RMCS/OMO）
     */
    public void setCreator(String creator) {
        this.creator = creator;
    }

    /**
     * 获取计划提交时间
     * 参见3.2.4。
     *
     * @return Submit_Time - 计划提交时间
     * 参见3.2.4。
     */
    public String getSubmitTime() {
        return submitTime;
    }

    /**
     * 设置计划提交时间
     * 参见3.2.4。
     *
     * @param submitTime 计划提交时间
     *                   参见3.2.4。
     */
    public void setSubmitTime(String submitTime) {
        this.submitTime = submitTime;
    }

    /**
     * 获取卫星名称
     *
     * @return Satellite_Name - 卫星名称
     */
    public String getSatelliteName() {
        return satelliteName;
    }

    /**
     * 设置卫星名称
     *
     * @param satelliteName 卫星名称
     */
    public void setSatelliteName(String satelliteName) {
        this.satelliteName = satelliteName;
    }

    /**
     * 获取轨道圈号
     *
     * @return Orbit_Number - 轨道圈号
     */
    public String getOrbitNumber() {
        return orbitNumber;
    }

    /**
     * 设置轨道圈号
     *
     * @param orbitNumber 轨道圈号
     */
    public void setOrbitNumber(String orbitNumber) {
        this.orbitNumber = orbitNumber;
    }

    /**
     * 获取轨道类型：
     * SunSync：太阳同步
     * EarthSync：地球同步
     * HighlyEllipitical：大椭圆轨道
     *
     * @return Orbit_Type - 轨道类型：
     * SunSync：太阳同步
     * EarthSync：地球同步
     * HighlyEllipitical：大椭圆轨道
     */
    public String getOrbitType() {
        return orbitType;
    }

    /**
     * 设置轨道类型：
     * SunSync：太阳同步
     * EarthSync：地球同步
     * HighlyEllipitical：大椭圆轨道
     *
     * @param orbitType 轨道类型：
     *                  SunSync：太阳同步
     *                  EarthSync：地球同步
     *                  HighlyEllipitical：大椭圆轨道
     */
    public void setOrbitType(String orbitType) {
        this.orbitType = orbitType;
    }

    /**
     * 获取计划接收模式：
     * Normal：正常接收
     * DualRecord：单天线双记录
     * DualAntDualRecord：双天线双记录
     * 结束时间
     *
     * @return Task_Rcv_Type - 计划接收模式：
     * Normal：正常接收
     * DualRecord：单天线双记录
     * DualAntDualRecord：双天线双记录
     * 结束时间
     */
    public String getTaskRcvType() {
        return taskRcvType;
    }

    /**
     * 设置计划接收模式：
     * Normal：正常接收
     * DualRecord：单天线双记录
     * DualAntDualRecord：双天线双记录
     * 结束时间
     *
     * @param taskRcvType 计划接收模式：
     *                    Normal：正常接收
     *                    DualRecord：单天线双记录
     *                    DualAntDualRecord：双天线双记录
     *                    结束时间
     */
    public void setTaskRcvType(String taskRcvType) {
        this.taskRcvType = taskRcvType;
    }

    /**
     * 获取作业方式
     * 参见《国家民用空间基础设施“十二五”陆地观测卫星地面系统项目数据接收系统接收管理与监控分系统与跟踪接收分系统接口规范》
     * 对于某个任务单的作业任务，其作业方式可采用多个作业方式进行组合。如此任务单存在多个作业方式，中间以“;”隔开。
     * 作业方式有：
     * A02：卫星跟踪与接收；
     * A01，A03…A10：预留；
     * R11：数据记录；
     * R12: 原始数据实时传输；
     * R14：快视数据实时传输；
     * R16: 原始数据记录完成立即传输；
     * R17: 快视数据记录完成立即传输；
     * R18：应急截取数据并实时传输（仅针对高分星）；
     * R19：原始数据抽取数据实时传输（仅针对先导星）；
     * R13，R15用于记录数据传输任务；
     * R20…R30: 预留；
     * H31…H40：预留。
     * P01：任务过程中快速校相
     *
     * @return Task_Mode - 作业方式
     * 参见《国家民用空间基础设施“十二五”陆地观测卫星地面系统项目数据接收系统接收管理与监控分系统与跟踪接收分系统接口规范》
     * 对于某个任务单的作业任务，其作业方式可采用多个作业方式进行组合。如此任务单存在多个作业方式，中间以“;”隔开。
     * 作业方式有：
     * A02：卫星跟踪与接收；
     * A01，A03…A10：预留；
     * R11：数据记录；
     * R12: 原始数据实时传输；
     * R14：快视数据实时传输；
     * R16: 原始数据记录完成立即传输；
     * R17: 快视数据记录完成立即传输；
     * R18：应急截取数据并实时传输（仅针对高分星）；
     * R19：原始数据抽取数据实时传输（仅针对先导星）；
     * R13，R15用于记录数据传输任务；
     * R20…R30: 预留；
     * H31…H40：预留。
     * P01：任务过程中快速校相
     */
    public String getTaskMode() {
        return taskMode;
    }

    /**
     * 设置作业方式
     * 参见《国家民用空间基础设施“十二五”陆地观测卫星地面系统项目数据接收系统接收管理与监控分系统与跟踪接收分系统接口规范》
     * 对于某个任务单的作业任务，其作业方式可采用多个作业方式进行组合。如此任务单存在多个作业方式，中间以“;”隔开。
     * 作业方式有：
     * A02：卫星跟踪与接收；
     * A01，A03…A10：预留；
     * R11：数据记录；
     * R12: 原始数据实时传输；
     * R14：快视数据实时传输；
     * R16: 原始数据记录完成立即传输；
     * R17: 快视数据记录完成立即传输；
     * R18：应急截取数据并实时传输（仅针对高分星）；
     * R19：原始数据抽取数据实时传输（仅针对先导星）；
     * R13，R15用于记录数据传输任务；
     * R20…R30: 预留；
     * H31…H40：预留。
     * P01：任务过程中快速校相
     *
     * @param taskMode 作业方式
     *                 参见《国家民用空间基础设施“十二五”陆地观测卫星地面系统项目数据接收系统接收管理与监控分系统与跟踪接收分系统接口规范》
     *                 对于某个任务单的作业任务，其作业方式可采用多个作业方式进行组合。如此任务单存在多个作业方式，中间以“;”隔开。
     *                 作业方式有：
     *                 A02：卫星跟踪与接收；
     *                 A01，A03…A10：预留；
     *                 R11：数据记录；
     *                 R12: 原始数据实时传输；
     *                 R14：快视数据实时传输；
     *                 R16: 原始数据记录完成立即传输；
     *                 R17: 快视数据记录完成立即传输；
     *                 R18：应急截取数据并实时传输（仅针对高分星）；
     *                 R19：原始数据抽取数据实时传输（仅针对先导星）；
     *                 R13，R15用于记录数据传输任务；
     *                 R20…R30: 预留；
     *                 H31…H40：预留。
     *                 P01：任务过程中快速校相
     */
    public void setTaskMode(String taskMode) {
        this.taskMode = taskMode;
    }

    /**
     * 获取计划执行状态：
     * Hold：任务确认之后且尚未进入Ready状态（此状态下可以取消任务）；
     * Ready：准备就绪，等待执行（任务执行前10分钟进入Ready状态，此时起任务不能被取消；对于数据记录分系统，任务执行前5分钟进入Ready状态）；
     * Running：正在进行；
     * Completed：完成；根据计划完全成功。
     * NoRespond：数据记录分系统未响应；
     * Failed：失败。
     *
     * @return Status - 计划执行状态：
     * Hold：任务确认之后且尚未进入Ready状态（此状态下可以取消任务）；
     * Ready：准备就绪，等待执行（任务执行前10分钟进入Ready状态，此时起任务不能被取消；对于数据记录分系统，任务执行前5分钟进入Ready状态）；
     * Running：正在进行；
     * Completed：完成；根据计划完全成功。
     * NoRespond：数据记录分系统未响应；
     * Failed：失败。
     */
    public String getStatus() {
        return status;
    }

    /**
     * 设置计划执行状态：
     * Hold：任务确认之后且尚未进入Ready状态（此状态下可以取消任务）；
     * Ready：准备就绪，等待执行（任务执行前10分钟进入Ready状态，此时起任务不能被取消；对于数据记录分系统，任务执行前5分钟进入Ready状态）；
     * Running：正在进行；
     * Completed：完成；根据计划完全成功。
     * NoRespond：数据记录分系统未响应；
     * Failed：失败。
     *
     * @param status 计划执行状态：
     *               Hold：任务确认之后且尚未进入Ready状态（此状态下可以取消任务）；
     *               Ready：准备就绪，等待执行（任务执行前10分钟进入Ready状态，此时起任务不能被取消；对于数据记录分系统，任务执行前5分钟进入Ready状态）；
     *               Running：正在进行；
     *               Completed：完成；根据计划完全成功。
     *               NoRespond：数据记录分系统未响应；
     *               Failed：失败。
     */
    public void setStatus(String status) {
        this.status = status;
    }

    /**
     * 获取跟踪开始时间
     * 参见3.2.4
     *
     * @return Track_Start_Time - 跟踪开始时间
     * 参见3.2.4
     */
    public String getTrackStartTime() {
        return trackStartTime;
    }

    /**
     * 设置跟踪开始时间
     * 参见3.2.4
     *
     * @param trackStartTime 跟踪开始时间
     *                       参见3.2.4
     */
    public void setTrackStartTime(String trackStartTime) {
        this.trackStartTime = trackStartTime;
    }

    /**
     * 获取跟踪结束时间
     * 参见3.2.4
     *
     * @return Track_Stop_Time - 跟踪结束时间
     * 参见3.2.4
     */
    public String getTrackStopTime() {
        return trackStopTime;
    }

    /**
     * 设置跟踪结束时间
     * 参见3.2.4
     *
     * @param trackStopTime 跟踪结束时间
     *                      参见3.2.4
     */
    public void setTrackStopTime(String trackStopTime) {
        this.trackStopTime = trackStopTime;
    }

    /**
     * 获取记录开始时间
     * 参见3.2.4
     *
     * @return Receiving_Start_Time - 记录开始时间
     * 参见3.2.4
     */
    public String getReceivingStartTime() {
        return receivingStartTime;
    }

    /**
     * 设置记录开始时间
     * 参见3.2.4
     *
     * @param receivingStartTime 记录开始时间
     *                           参见3.2.4
     */
    public void setReceivingStartTime(String receivingStartTime) {
        this.receivingStartTime = receivingStartTime;
    }

    /**
     * 获取记录结束时间
     * 参见3.2.4
     *
     * @return Receiving_End_Time - 记录结束时间
     * 参见3.2.4
     */
    public String getReceivingEndTime() {
        return receivingEndTime;
    }

    /**
     * 设置记录结束时间
     * 参见3.2.4
     *
     * @param receivingEndTime 记录结束时间
     *                         参见3.2.4
     */
    public void setReceivingEndTime(String receivingEndTime) {
        this.receivingEndTime = receivingEndTime;
    }

    /**
     * 获取起始方位（单位：0.001度）
     *
     * @return AzIn - 起始方位（单位：0.001度）
     */
    public Integer getAzin() {
        return azin;
    }

    /**
     * 设置起始方位（单位：0.001度）
     *
     * @param azin 起始方位（单位：0.001度）
     */
    public void setAzin(Integer azin) {
        this.azin = azin;
    }

    /**
     * 获取起始俯仰（单位：0.001度）
     *
     * @return ElIn - 起始俯仰（单位：0.001度）
     */
    public Integer getElin() {
        return elin;
    }

    /**
     * 设置起始俯仰（单位：0.001度）
     *
     * @param elin 起始俯仰（单位：0.001度）
     */
    public void setElin(Integer elin) {
        this.elin = elin;
    }

    /**
     * 获取结束方位（单位：0.001度）
     *
     * @return Az_Out - 结束方位（单位：0.001度）
     */
    public Integer getAzOut() {
        return azOut;
    }

    /**
     * 设置结束方位（单位：0.001度）
     *
     * @param azOut 结束方位（单位：0.001度）
     */
    public void setAzOut(Integer azOut) {
        this.azOut = azOut;
    }

    /**
     * 获取结束俯仰（单位：0.001度）
     *
     * @return El_Out - 结束俯仰（单位：0.001度）
     */
    public Integer getElOut() {
        return elOut;
    }

    /**
     * 设置结束俯仰（单位：0.001度）
     *
     * @param elOut 结束俯仰（单位：0.001度）
     */
    public void setElOut(Integer elOut) {
        this.elOut = elOut;
    }

    /**
     * 获取最高仰角（单位：0.001度）
     *
     * @return El_Top - 最高仰角（单位：0.001度）
     */
    public Integer getElTop() {
        return elTop;
    }

    /**
     * 设置最高仰角（单位：0.001度）
     *
     * @param elTop 最高仰角（单位：0.001度）
     */
    public void setElTop(Integer elTop) {
        this.elTop = elTop;
    }

    /**
     * 获取执行天线标识，参见3.2.5
     *
     * @return Antenna_ID - 执行天线标识，参见3.2.5
     */
    public String getAntennaID() {
        return antennaID;
    }

    /**
     * 设置执行天线标识，参见3.2.5
     *
     * @param antennaID 执行天线标识，参见3.2.5
     */
    public void setAntennaID(String antennaID) {
        this.antennaID = antennaID;
    }
}